package com.aizuda.boot.modules.file.mapper;

import com.aizuda.boot.modules.file.domain.entity.FileConversionCache;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 文件转换缓存表Mapper
 * 
 * @author yangshen
 * @date 2025-08-04
 */
@Mapper
public interface FileConversionCacheMapper extends BaseMapper<FileConversionCache> {
    
    /**
     * 根据源文件ID和转换类型查找缓存记录
     * 
     * @param sourceFileId 源文件ID
     * @param conversionType 转换类型
     * @return 缓存记录
     */
    FileConversionCache findBySourceFileIdAndType(@Param("sourceFileId") String sourceFileId, 
                                                  @Param("conversionType") String conversionType);

    /**
     * 根据源文件Key和转换类型查找缓存记录
     * 
     * @param sourceFileKey 源文件Key
     * @param conversionType 转换类型
     * @return 缓存记录
     */
    FileConversionCache findBySourceFileKeyAndType(@Param("sourceFileKey") String sourceFileKey, 
                                                   @Param("conversionType") String conversionType);

    /**
     * 删除指定源文件的所有转换缓存
     * 
     * @param sourceFileId 源文件ID
     * @return 删除数量
     */
    int deleteBySourceFileId(@Param("sourceFileId") String sourceFileId);
}